package com.automannn.codeGenerator.core.context;


import com.automannn.codeGenerator.core.introspection.IntrospectionCacheData;
import com.automannn.codeGenerator.core.resource.Resource;


import java.util.List;

interface InternalHousekeepingContext
{

    void pushCurrentTemplateName(String s);

    void popCurrentTemplateName();

    String getCurrentTemplateName();

    Object[] getTemplateNameStack();

    void pushCurrentMacroName(String s);

    void popCurrentMacroName();

    String getCurrentMacroName();

    int getCurrentMacroCallDepth();

    Object[] getMacroNameStack();

    IntrospectionCacheData icacheGet(Object key);

    void icachePut(Object key, IntrospectionCacheData o);

    Resource getCurrentResource();

    void setCurrentResource(Resource r);

     boolean getAllowRendering();

     void setAllowRendering(boolean v);

     void setMacroLibraries(List macroLibraries);

     List getMacroLibraries();

}
